package com.hm_;

import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Map;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.hm_.mapper.EmployeeMapper;

@SpringBootApplication // 包含configration 和componentscan
@Controller
@MapperScan(basePackageClasses=EmployeeMapper.class)
public class Main {
	public static void main(String[] args) {
		SpringApplication.run(Main.class, args);
	}

	@RequestMapping("/hello")
	@ResponseBody
	public String hello() {
		return "<h1>Spring-boot是Java的技术革命<h1>";
	}

	// @Value("${date.patten}")
	private String patten;

	@Bean
	public DateFormat dateFormat() {
		return new SimpleDateFormat();
	}
	@Bean
		public HttpMessageConverters fastjsonHttpMessageConverter() {
			// 定义一个转换消息的对象
			FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
			// 添加fastjson的配置信息 比如 ：是否要格式化返回的json数据
			FastJsonConfig fastJsonConfig = new FastJsonConfig();
			fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
			fastJsonConfig.setCharset(Charset.forName("utf-8"));
			// 在转换器中添加配置信息
			fastConverter.setFastJsonConfig(fastJsonConfig);
			HttpMessageConverter<?> converter = fastConverter;
			return new HttpMessageConverters(converter);
}
}
